コンテナ内のEggplant DAIのデプロイ
コンテナへのEggplant DAIのインストールを進める前に、組織内のエンジニアが認定Kubernetes管理者 (https://www.cncf.io/training/certification/cka/)であるか、同等の経験があることを確認する必要があります。
Eggplant DAIはHelmを使用してKubernetesにインストールできます 以下の要件を満たす必要があります:
要件 | 注記 |
---|---|
Kubernetes cluster | バージョン1.27をテストしました。 |
ingress-nginx | テスト済みのバージョン 1.10.0 (グラフ バージョン 4.10.0)。 |
Keda v2 | オプション、オートスケーリングエンジン用。 バージョン2.13.2をテストしました。 |
Eggplant DAI license | 必要に応じてサポートに問い合わせてください。 |
これらの要件を満たしたら、Helmの値ファイルを作成することで、デフォルトのEggplant DAIデプロイをインストールできます。 以下の例では、独自のデプロイ用にすべての値を置き換えます。
global:
postgresql:
auth:
postgresPassword: postgres
ingress:
host: dai.example.com
keycloak:
host: dai.example.com
devLicense: a-real-license-goes-here
execLicense: a-real-license-goes-here
objectStorage:
minio:
rootUser: "eggplant"
rootPassword: "eggplant"
keycloak:
externalDatabase:
# This must match the value of global.postgresql.auth.postgresPassword
password: postgres
keycloak-user-provisioner:
adminUsers:
daiAdmin:
username: admin-username
email: admin-email
password: admin-password
いくつかの注意点:
global.ingress.host
とglobal.keycloak.host
は同じドメインである必要はありませんが、解決可能である必要があります。 これを行うには、クラスターに ExternalDNS のようなものをデプロイするか、レコードを手動で作成してクラスターに向けます。- コンテナで実行する場合は、DAI を TLS と組み合わせて使用する必要があります。 TLS は、イングレスに証明書を追加することでクラスター内で終了するか、外部ロードバランサーで終了できます。 詳細については、以下の「TLS設定」セクションを参照してください。
global.ingress.host
で設定するホスト名は、DAI専用に設定する必要があります。 同じサブドメインで他のアプリケーションを実行することはサポートされていません。keycloak-user-provisioner.adminUsers.daiAdmin.password
は12文字以上である必要があります。keycloak-user-provisioner.adminUsers
の下に追加のキーを追加することで、管理者ユーザーを追加できます。- DAI は、イングレス ルール内の構成スニペットを利用します 最新バージョンの ingress-nginx コントローラーを実行している場合は、これが allow-snippet-annotations に設定されていることを確認する必要があります。 これは、helm を使用して ingress-nginx をインストールする場合に
controller.allowSnippetAnnotations
をtrue
に設定することで実現できます。
すべての値の詳細なドキュメントはこちらで見ることができます。
次に、Kubernetesクラスタにそれをデプロイします:
$ helm upgrade --install \ --namespace dai \ --create-namespace \ dai \ dai \ --repo oci://harbor.dai.eggplant.cloud/charts/dai \ --version 1.15.15 \ --values dai.yaml \ --wait Release "dai" does not exist. Installing it now. NAME: dai LAST DEPLOYED: Fri Feb 17 08:20:17 2023 NAMESPACE: dai STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Thank you for installing dai.
リリースの名前は dai です。
リリースの詳細については、以下をお試しください。
$ helm status dai $ helm get all dai
admin username: admin-username admin password: admin-password
このインストールでは、Bitnami Helmチャートを使用して、必要なサードパーティの依存関係が自動的にインストールおよび設定されます。これらの依存関係は: These dependencies are: These dependencies are: これらの依存関係は以下の通りです:
依存関係 | テストされたチャートバージョン | テストされたアプリバージョン |
---|---|---|
RabbitMQ | 11.13.0 | 3.11.13 |
PostgreSQL | 11.9.13 | 14.7.0 |
MinIO | 12.2.6 | 2022.2.5 |
Helmチャートはこれらの依存関係をインストールしますが、PostgreSQLまたはMinIOに格納されているデータのバックアップは管理しません。 これらのサービスのバックアップは、ディザスター リカバリー計画の一部として、運用デプロイに配置する必要があります。 バックアップの 1 つのアプローチの例は、このドキュメントの後半にあります。
サポートされているカスタマイズ
デフォルトのインストールでは、PostgreSQLとMinIOのデータが永続ボリュームに保存され、すべての依存関係がKubernetesにデプロイされます。 PostgreSQLまたはAWS S3互換のオブジェクトストレージ用の既存のソリューションを代わりに使用したい場合は、Eggplant DAIのインストールをカスタマイズしてこれらを使用することができます。 さらに、セキュリティを向上させるために、値ファイルではなく Kubernetes シークレットを使用して資格情報を渡すこともできます。
ドキュメントのこのセクションでは、インストールをカスタマイズする方法を示す例を示します。 すべての例では、認証情報にシークレットを使用します。 すべての例は、上記で示したデフォルトのインストール値に追加することを意味するスニペットです。
オブジェクトストレージの設定
Eggplant DAIは、テストスクリーンショットなどのアセットを永続的に保持するために、S3互換のオブジェクトストレージソリューションに依存しています。 Helm チャートには、これを構成するためのいくつかのオプションがあります